Duke-pro1 安装方法
芜湖!经过好几天的测试,我终于找到了成功安装陈博士仓库的方法!!!
安装不成功的关键在于相关的依赖没有安装。
第一步:安装 rosdep
强烈建议参考这个教程来安装ROS:ROS 安装教程
安装完ROS后,在这个教程的后记中,详细介绍了如何安装 rosdep。不过我的 rosdep 安装过程并没有出现教程里说的异常,建议大家挂梯子,然后不断地尝试,大概率是可以直接装的。
第二步:用 rosdep 安装仓库的依赖
在工作空间下打开终端,输入以下命令:
$ rosdep install --from-paths src --ignore-src -r -y
这个命令可以把项目的所有依赖全部安装下来,相当的方便。反复尝试使用该命令直到它告诉你全部安装成功了。
第三步:补充 rosdep 没安装成功的依赖
注意,如果你上一步仔细看它给的信息,你会发现它虽然告诉你全装成功了,但中间提示你漏了几个包。因此 dynamic-edt-3d 这个包需要手动安装。(std_msg不晓得怎么装,似乎不影响编译)

使用如下命令安装:
$ sudo apt install ros-noetic-dynamic-edt-3d
同理,如果你发现rosdep告诉你有其他的包没有装好,你也可以按照这个格式手动安装:
$ sudo apt install ros-noetic-包名
第四步:运行 catkin build
如果你在前三步手贱运行了 catkin build, 那么你需要将项目文件里的 build 和 devel 文件夹删除!
这一步卡了我好久好久,经过大量的搜索和推测,我目前的理解是c++文件的编译是有顺序的,由于不同包之间有依赖关系,所以错误的编译顺序会导致报错。这就是为什么明明依赖都安装了,以c++为主的 traj_gennav 这个包一直报错说“undefined reference to dynamicEDT3D”,因为先前反复的 catkin build 测试产生的 build 和 devel 文件会导致编译的顺序混乱。

成功安装!


以下是其它一些小问题的解决方法
catkin:未找到命令

原因:
- 缺少 python3-catkin-tools 包
解决方法:
- 安装 python3-catkin-tools 包,命令如下:
- $ sudo apt-get update (可选)
- $ sudo apt-get install python3-catkin-tools
catkin_tools_prebuild 错误 (一个包都装不上)


原因:
- ROS没有被添加到环境变量,编译器找不到ROS。
解决方法:
- 将ROS加入环境变量,代码如下:
- echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
- source ~/.bashrc